package com.qf.p1.service;

import com.qf.p1.model.CourseTname;
import com.qf.p1.model.User;

import java.util.List;

/**
 * 用户业务逻辑定义
 * @version v1.0.0
 * @Description:
 * @author: 姜红凯
 * @date: 2022.04.06
 * @since 1.0
 */
public interface UserService {
    /**
     * 用户登录的方法
     * @param username 用户名
     * @param password 密码
     * @return 返回登录的用户对应的实体
     */
    User signIn(String username,String password);

    /**
     * 校验用户名是否已经存在
     * @param username 用户名
     * @return 用户名是否存在
     */
    boolean findUserName(String username);

    /**
     * 用户注册
     * @param username 用户名
     * @param password 密码
     * @param gender 性别
     */
    void signUp(String username,String password,String gender);

    /**
     * 学生选课的方法
     * @param uid 用户
     * @param cid 课程id
     * @return 选课是否成功
     */
    boolean selectCourse(Integer uid,Integer cid);


    /**
     * 学生删除已选课程的方法
     * @param userId 用户
     * @param cid 课程id
     * @return 删除已选课程的结果是否成功
     */
    boolean unSelectCourse(Integer userId, Integer cid);

    /**
     * 查询一个用户的所有选择课程
     * @param uid 用户id
     * @return 这个用户的所有选课
     */

    List<CourseTname> findCourses(Integer uid);
}
